package com.hex.ds.hdrs.period.task.dao;


import com.hex.bigdata.hbda.base.BaseDao;
import com.hex.bigdata.hbda.base.Page;
import com.hex.ds.hdrs.period.task.dto.PeriodTaskDto;
import com.hex.ds.hdrs.period.task.po.PeriodTask;
import com.hex.ds.hdrs.period.task.vo.PeriodTaskByEcharsVo;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * @Package: com.hex.ds.hdrs.period.task.dao
 * @ClassName PeriodTaskDao
 * @Description:周期任务实例表
 * @Author: <gc.zuo>
 * @Date 2021/6/3 15:40
 * @Version v1.0
 **/
@Repository
public class PeriodTaskDao extends BaseDao {

    /*
     * @Method: queryListByPage <br>
     * @Param: [periodTask, page] <br>
     * @Return: java.util.List<com.hex.ds.hdrs.period.task.po.PeriodTask> <br>
     * @Description：分页查询<br>
     * @Author： wz.li<br>
     * @Date： 2023/5/4 16:48 <br>
     * @Version： V2.0.2<br>
     */
    public List<PeriodTask> queryListByPage(PeriodTask periodTask, Page page) {
        return this.selectPage(PeriodTask.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.query", page, periodTask);
    }

    /*
     * @Method: queryList <br>
     * @Param: [periodTask] <br>
     * @Return: java.util.List<com.hex.ds.hdrs.period.task.po.PeriodTask> <br>
     * @Description：不分页查询<br>
     * @Author： wz.li<br>
     * @Date： 2023/5/4 19:05 <br>
     * @Version： V2.0.2<br>
     */
    public List<PeriodTask> queryList(PeriodTask periodTask) {
        return this.selectList(PeriodTask.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.query", periodTask);
    }

    public List<PeriodTask> queryTaskStatusCount(PeriodTask periodTask) {
        return this.selectList(PeriodTask.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.queryTaskStatusCount", periodTask);
    }

    public int insert(PeriodTask periodTask) {
        return this.insert("com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.insert", periodTask);
    }

    public List<PeriodTask> qryTaskStatus(Map map) {
        return this.selectList(PeriodTask.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.qryTaskStatus", map);
    }

    public int deltaskinfo(List<String> pkIds) {
        return this.delete("com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.deltaskinfo", pkIds);
    }

    public PeriodTask qryPeriodTaskInfo(Map map) {
        return this.selectOne(PeriodTask.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.qryPeriodTaskInfo", map);
    }

    public List<PeriodTask> qryTaskInfoList(Map map) {
        return this.selectList(PeriodTask.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.qryPeriodTaskInfo", map);
    }

    public List getTaskListByCruuentUser(Map map) {
        return this.selectList(Map.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.getTaskListByCruuentUser", map);
    }

    public List<Map> getTaskListByCruuentApp(Map map) {
        return this.selectList(Map.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.getTaskListByCruuentApp", map);
    }
    public List<Map> getTaskListByCruuentApp2(Map map) {
        return this.selectList(Map.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.getTaskListByCruuentApp2", map);
    }
    public List<Map> getTaskListByCruuentApp3(Map map) {
        return this.selectList(Map.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.getTaskListByCruuentApp3", map);
    }

    public List<PeriodTask> qryLstFnsTaskList() {
        return this.selectList(PeriodTask.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.qryLstFnsTaskList");
    }

    public List<PeriodTask> qryToDoTaskList() {
        return this.selectList(PeriodTask.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.qryToDoTaskList");
    }

    public List<PeriodTask> qryLstFnsTaskList(String lastQryTs) {
        return this.selectList(PeriodTask.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.qryLstFnsTaskList", lastQryTs);
    }

    public List<PeriodTask> qryToDoTaskList(String lastQryTs) {
        return this.selectList(PeriodTask.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.qryToDoTaskList", lastQryTs);
    }

    public int updateByMap(Map map) {
        return this.update("com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.updateByMap", map);
    }

    public int updateBizDateByMap(Map map){
        return this.update("com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.updateBizDateByMap", map);
    }

    public List<PeriodTask> qryTaskCodesByAppCode(Map map) {
        return this.selectList(PeriodTask.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.qryTaskCodesByAppCode", map);
    }

    public Integer countTask(Map paramMap) {
        return this.selectOne(Integer.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.countTask", paramMap);
    }

    public Integer countUnAppointTask(Map paramMap) {
        return this.selectOne(Integer.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.countUnAppointTask", paramMap);
    }

    public List<PeriodTaskByEcharsVo> qryTaskInfoByEchars(PeriodTaskDto periodTaskDto) {
        return this.selectList(PeriodTaskByEcharsVo.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.qryTaskInfoByEchars", periodTaskDto);
    }

    public List<Map> countByStatus(Map paramMap) {
        return this.selectList(Map.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.countByStatus", paramMap);
    }

    public int updateFailTask(Map<String, Object> map) {
        return this.update("com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.updateFailTask", map);
    }

    public int upDependTaskCount(Map map) {
        return this.selectOne(Integer.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.upDependTaskCount", map);
    }

    public List<PeriodTask> queryUpDependTask(Map map){
        return this.selectList(PeriodTask.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.queryUpDependTask", map);
    }

    public int upDependTaskCountNoStatus(Map map) {
        return this.selectOne(Integer.class, "com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.upDependTaskCountNoStatus", map);
    }

    public void deleteTaskByJob(Map paramMap) {
        this.delete("com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.deleteTaskByJob", paramMap);
    }

    public void delTaskByDate(Map map) {
        this.delete("com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.delTaskByDate", map);
    }

    public void reductionTask(String bitchId) {
        this.insert("com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.reductionTask", bitchId);
    }

    public int selectCountByTaskStatus(Map map){
        return this.selectOne(Integer.class,"com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.selectCountByTaskStatus",map);
    }

    public List<Map> selectUnionCountByTaskStatus(Map map){
        return this.selectList(Map.class,"com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.selectUnionCountByTaskStatus",map);
    }

    public List<PeriodTask> qryDownTaskListByDependTaskCodeAndBizDate(Map map) {
        return this.selectList(PeriodTask.class,"com.hex.ds.hdrs.period.task.dao.PeriodTaskDao.qryDownTaskListByDependTaskCodeAndBizDate",map);
    }
}
